Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Опрацювання одно- та двовимірних масивів.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КI

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 6 з курсу „ Засоби системного програмування ” Тема: Опрацювання одно- та двовимірних масивів. Виконав: студент групи КІ-2 Львів – 2004 Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання одно- та двовимірних масивів. Засвоїти основи адресної арифметики. Завдання на лабораторну роботу Розробити програмне забезпечення для опрацювання одно- та двовимірних масивів (матриць) відповідно до заданого варіанту. Розміри матриць (в загальному не квадратних) передавати через аргументи функції main(). Параметри, що задають кількість рядків та стовпців повинні бути іменованими і можуть зустрічатися в командному рядку в довільному порядку. Значення елементів матриць вводити зі стандартного пристрою вводу. Пам’ять під матриці виділяти динамічно. Для трикутних матриць (опираючись на їх структуру) виділяти мінімальні об’єми пам’яті. Виконати контрольний друк вхідних даних та результатів. Звернути особливу увагу на обробку помилок, які користувач може зробити при використанні програми. При вирішенні задач забезпечити дружній інтерфейс з користувачем. Варіант 23. Множення квадратної матриці на матрицю стовпець. Аналіз завдання та опис алгоритму вирішення задачі Матрицю (двовимірний масив) зберігаємо в одновимірному масиві. Для звертання до елементу m[i][j] використовуємо звертання m[i*x+j], де х – кількість елементів в одному рядку масива. Розміри матриць передаємо програмі через аргументи функції main(). int argc (кількіть аргументів) ; char *argv[] – самі аргументи. Оскільки опрацьовуються квадратна матриця і матриця-стовпець такої ж висоти, то використовується лише один параметр. При множенні двох матриць ми отримуємо нову матрицю, в якій число рядків таке ж як і в першій, а кількість стовпців – як в другій матриці. Текст програми #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <alloc.h> #include <string.h> void Err (int e) { if (e==0) puts("ERROR: Wrong argument count!"); else if (e==1) puts("ERROR: Wrong argument name!"); puts("\nSYNTAX: <prog_name> x=<matrix_size>"); getchar(); exit(0); } void main (int argc,char *argv[]) { int *m, *s, *result, i, j, x, tmp=0; clrscr(); if (argc!=2) Err(0); for(i=1;i<argc;i++) { for(j=0;j<strlen(argv[i]);j++) { if(argv[i][j]>47&&argv[i][j]<58) { if(tmp>0)tmp*=10; tmp+=(argv[i][j]-48); } } if(argv[i][0]=='x') x=tmp; else Err(1); tmp=0; } printf("\nSquare matrix size : %d x %d",x,x); m=(int*)malloc(sizeof(int)*x*x); s=(int*)malloc(sizeof(int)*x); result=(int*)malloc(sizeof(int)*x); puts("\nInput elements of square matrix :"); for(i=0;i<x;i++) for(j=0;j<x;j++) scanf("%d",&m[i*x+j]); puts("\nInput elements of column-matrix :"); for(i=0;i<x;i++) scanf("%d",&s[i]); puts("\nVisualized matrixes :"); for(i=0;i<x;i++) { printf(" │"); for(j=0;j<x;j++) printf("%4d",m[i*x+j]); printf(" │ * │ %4d │\n",s[i]); } for(i=0;i<x;i++) { result[i]=0; for(j=0;j<x;j++) result[i] += m[i*x+j]*s[j]; } puts("\nResult of matrix multiplication :"); for(i=0;i<x;i++) { printf(" │ "); printf("%5d",result[i]); puts(" │"); } free(m); free(s); getchar(); getchar(); } Опис результатів тестування Для тестування програми було використано матрицю розміром 2 х 2. Для запуска програми в командний рядок потрібно ввести ім’я програми з необхідним аргументом: Lab6.exe x=n , де n – розмір матриці. Кінцевий вигляд результатів тестування програми: Square matrix size : 2 x 2 Input elements of square matrix : 1 2 3 4 Input elements of column-matrix : 100 200 Visualized matrixes : │ 1 2 │ * │ 100 │ │ 3 4 │ * │ 200 │ Result of matrix mul...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини